/*
拦截所有的请求，并过滤指定请求
 */
'use strict';

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({
        headless: false   //代码运行时打开浏览器方便观察
    });
    const page = await browser.newPage();
    //启用请求拦截器，会激活 request.abort, request.continue 和 request.respond 方法。这提供了修改页面发出的网络请求的功能。
    //一旦启用请求拦截，每个请求都将停止，除非它继续，响应或中止。 通过请求拦截器取消所有图片请求：
    await page.setRequestInterception(true);

    await  page.on('request', request => {
        console.log(request.resourceType())  //打印观看类型  可以发现对应谷歌network窗口的诶类型
        if (request.resourceType() === 'image')  //如果类型属于image  则过滤掉
            request.abort();  //抛弃
        else
            request.continue();  //跳过  这边代码什么都没做就是放行了
    });
    await page.goto('https://blog.csdn.net/mengxiangxingdong');  //原先是https://news.google.com/news/，需要需要国际代理 所以我更换了网站
    //截图 查看图片被拦截后的效果  自己对比网页
    await page.screenshot({path: '../screenshot/newsAfter.png', fullPage: true});
    // await browser.close();
})();